package com.dhcc.bpm.modules.gateway.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.dhcc.bpm.modules.api.entity.Product;
import com.dhcc.bpm.modules.common.vo.SelectVo;
import com.dhcc.bpm.modules.gateway.entity.Gateway;
import com.dhcc.bpm.modules.gateway.vo.GatewayVO;
import org.springblade.core.mp.base.BaseService;

import java.util.List;

/**
 * @ClassName IGatewayService
 * @Description 网关表 服务类
 * @Author YaoZC
 * @Date 2019/11/26 16:08
 * @Version 1.0
 * @Copyright: 2019 东华软件 . All rights reserved.
 */
public interface IGatewayService extends BaseService<Gateway> {

	/**
	 * @Description 自定义分页
	 * @Date 2019/11/26 16:08
	 * @param page
	 * @param gateway
	 * @return java.util.List<com.dhcc.bpm.modules.gateway.vo.GatewayVO>
	 **/
	IPage<GatewayVO> selectGatewayPage(IPage<GatewayVO> page, GatewayVO gateway);

	/**
	 * @Description 自定义分页
	 * @Date 2019/11/26 16:08
	 * @param page
	 * @param gateway
	 * @return java.util.List<com.dhcc.bpm.modules.gateway.vo.GatewayVO>
	 **/
	IPage<GatewayVO> selectGatewayList(IPage<GatewayVO> page, GatewayVO gateway);

	/**
	 * @Description 查询未分配的网关列表
	 * @Date 2019/11/26 16:08
	 * @param page
	 * @param gateway
	 * @return java.util.List<com.dhcc.bpm.modules.gateway.vo.GatewayVO>
	 **/
    IPage<GatewayVO> selectUnControllerGatewayList(IPage<GatewayVO> page, GatewayVO gateway);
	/**
	 * @Description 刷新网关路由
	 * @Date 2019/11/26 16:08
	 * @param gateway
	 * @return int
	 **/
	int updateRefreshStatus(Gateway gateway);

	/**
	 * @Description 根据网关ID查询产品列表
	 * @Date 2020/3/6 10:23
	 * @param page
	 * @param product
	 * @param gatewayId
	 * @return com.baomidou.mybatisplus.core.metadata.IPage<com.dhcc.bpm.modules.gateway.vo.GatewayVO>
	 **/
	IPage<Product> productListByGatewayId(IPage<Product> page, Product product, String gatewayId);

	/**
	 * @Description TODO
	 * @Author xiafayu
	 * @Date 2020/3/31 14:17
	 * @param  
	 * @return java.util.List<com.dhcc.bpm.modules.common.vo.SelectVo>
	 * @throws 
	 **/
	List<SelectVo> selectGatewayName();

	/**
	 * @Description TODO
	 * @Author xiafayu
	 * @Date 2020/3/31 14:17
	 * @param
	 * @return java.util.List<String>
	 * @throws
	 **/
	List<String> selectGatewayNameById(String id);

	String selectGatewayNameByCode(String code);
}
